//1. 计算两条线段的交点，已知两条线段的（x1,y1  x2,y2）(x3,y3  x4,y4)。

// 算法：[[x1,y1],[x2,y2]]  [[x3,y3],[x4,y4]]
// 1. 计算两条线的斜率是否相等，若相等则没有交点。 (y2 - y1)/(x2 - x1) = (y4 - y3)/(x4 -x3)
// 2. 得到两条线段的延长线的直线方程，计算二元一次方程组得到解。
// 3. 根据向量叉积判断解是否在两条线段上，若在，即为交点。


function findIntersection(line1, line2) {
    var x1 = line1[0][0], y1 = line1[0][1], x2 = line1[1][0], y2 = line1[1][1]
    var x3 = line2[0][0], y3 = line2[0][1], x4 = line2[1][0], y4 = line2[1][1]

    var k1 = (y2 - y1)/(x2 - x1)  //线1斜率
    var k2 = (y4 - y3)/(x4 - x3)  //线2斜率
    if (k1 === k2) {
        return false
    } else {
        var b1 = (x1*y2 - x2*y1)/(x1 - x2)
        var b2 = (x3*y4 - x4*y3)/(x3 - x4)

        // 求解
        var Inx = (b2 - b1)/(k1 - k2)
        var Iny = (k1*(b2 - b1))/(k1 - k2) + b1

        console.log([Inx, Iny])
        // 判断是否在两条线段上
        if ((Inx - x1)*(Inx - x2) <= 0 && (Iny - y1)*(Iny - y2) <= 0 && (Inx - x3)*(Inx - x4) <= 0 && (Iny - y3)*(Iny - y4) <= 0){
            return true
        } else {
            return false
        }
    }
}

// line1 = [[1.5, 1.5], [10, 10]]
// line2 = [[0, 3], [3, 0]]
// var i = findIntersection(line1, line2)
// console.log(i)